There are many error detection and correction techniques known in the art, such as forward error correction (FEC), feedback error correction, block and convolutional coding, and automatic request and repeat (ARQ) methods.
A basic procedure for error detection and correction is to design a code in which each word contains more bits than needed to represent all the symbols used in a data set. Both the transmitter and the receiver use the same coding to detect and correct errors. If a bit sequence is found that is not among those assigned to the data symbols, an error is known to have occurred. One such commonly used error-detection code is called the parity check. In general, the efficiency of error monitoring and correction performance is directly proportional to the amount of parity check information put into the data stream.
FEC introduces redundancy into data to check for errors without retransmission. In FEC, data transmission efficiency is sacrificed by adding extra bits to the data stream, to detect and correct errors caused by noise in the transmission channel. Nonetheless, it is possible to detect and correct all errors if a sufficient number of control bits are added to the data stream. Usually some compromise is made between data transmission efficiency and the ability to check and correct errors. Depending on the coding, error correction data constitute 10 to 40 percent of the information being transmitted in the channel.
Block and convolutional codes introduce redundancy by adding parity symbols to the message data. The codes map k source symbols to n code symbols and have a code rate of R=k/n. With fixed information rates, this redundancy results in increased bandwidth and lower energy per transmitted symbol. At low signal-to-noise ratios (SNR), these codes cannot rectify the large number of errors because of bandwidth limitations, and performance is degraded as a result. Coding techniques, as a result, become ever more complex and demand more redundant information to be put into the data stream to ensure reliable error correction.
Feedback error control detects but does not attempt to correct errors at the receiver end of the data transmission. When an error is detected in a block of data, the transmitter is notified by the use of a narrowband reverse channel. The block of data in error is then retransmitted to the receiver. This control mechanism also causes reduction in data rate, since time is consumed in retransmission of data. Even though this error correction technique is 100 percent efficient when there are no errors present in the data stream, it requires complicated feedback control mechanisms for correcting errors in the original transmission and subsequent data retransmission.
Error correction techniques such as ARQ require feedback designs for data retransmission. With higher error rates, the delay due to retransmission and the increase in the number of retransmissions would render the ARQ mechanism very complex to implement. High rates of retransmission also consume more transmission power and bandwidth on the transmission channel. Given the characteristics of ARQ, the implementation complexities described above will be further magnified, particularly with respect to detecting and correcting errors in data retransmission.
As can thus be seen, conventional error detection and correction methods typically require either retransmission of data (e.g., ARQ) or the transmission of additional error-checking information (such as parity check bits) that puts additional demand on bandwidth and transmission power. Those existing methods require added memory, greater bandwidth and more complex hardware to implement error correction and detection, with the further constraint that the transmitter and the receiver use the same coding format.
Therefore, there is a need for a simple method for detecting and correcting errors that is easy to implement without additional bandwidth penalty and error-checking information. A method is needed for correcting errors without feedback error control so that the negative effects of data retransmission are eliminated, without sacrificing error checking capability.